package com.vecspace.dayu.code.template.dao;

import java.util.List;
import org.springframework.stereotype.Repository;

import com.vecspace.database.dao.BaseDao;
import com.vecspace.dayu.code.template.pojo.TemplatePageComponent;

/** 模板页面布局元素,操作数据库的dao类
 * @author: wanghua
 */
@Repository("dayu_templatePageComponentDao")
public class TemplatePageComponentDao extends BaseDao {
	/** 根据ID查询 模板页面布局元素
	 * @param id   主键值
	 * @return TemplatePageComponent
	 * @throws Exception
	 * @author wanghua
	 */
	public TemplatePageComponent getTemplatePageComponent(Long id) throws Exception {
		TemplatePageComponent templatePageComponent = null;
		if (id != null && id != 0) {

			templatePageComponent = this.queryObject(TemplatePageComponent.class, id);
			this.evict(templatePageComponent);
		}
		return templatePageComponent;
	}
	
	/**获取页面内的组件类型
	 * 
	 * @param layoutId
	 * @return
	 * @throws Exception 
	 * @author wanghua
	 */
	public List<TemplatePageComponent> getTemplatePageComponents(Long layoutId) throws Exception {
		List<TemplatePageComponent> items = this.queryObjectList("from TemplatePageComponent where layoutId=?0 order by ordnum", new Object[] {layoutId});		
		return items;
	}
	/** 插入或修改 模板页面布局元素 
	 * @param item	要保存的对象
	 * @return void
	 * @throws Exception
	 * @author wanghua
	 */
	public void saveTemplatePageComponent(TemplatePageComponent item) throws Exception {
		boolean addFlag = item.getId() == null;
		this.saveOrUpdateObject(item);
		this.evict(item);
		if(addFlag){
			this.onAddDataRow("DAYU_CODE_TEMPLATE_COMPONENT", item);
		}else{
			this.onUpdateDataRow("DAYU_CODE_TEMPLATE_COMPONENT", item);
		}
	}

	/** 根据ID删除 模板页面布局元素 
	 * @param id	主键值
	 * @return void
	 * @throws Exception
	 * @author wanghua
	 */
	public void deleteTemplatePageComponent(Long id) throws Exception {
		if (id != null && id != 0) {
			this.deleteObject(TemplatePageComponent.class, id);
			this.onDeleteDataRow("DAYU_CODE_TEMPLATE_COMPONENT",id);
		}
	}
}
